using SoulsFormats;
using System.Collections.Generic;
using System.Numerics;

namespace HKX2
{
    public partial class hclBendLinkConstraintSetMxBatch : IHavokObject
    {
        public virtual uint Signature { get => 2531528327; }
        
        public float m_bendMinLengths_0;
        public float m_bendMinLengths_1;
        public float m_bendMinLengths_2;
        public float m_bendMinLengths_3;
        public float m_bendMinLengths_4;
        public float m_bendMinLengths_5;
        public float m_bendMinLengths_6;
        public float m_bendMinLengths_7;
        public float m_bendMinLengths_8;
        public float m_bendMinLengths_9;
        public float m_bendMinLengths_10;
        public float m_bendMinLengths_11;
        public float m_bendMinLengths_12;
        public float m_bendMinLengths_13;
        public float m_bendMinLengths_14;
        public float m_bendMinLengths_15;
        public float m_stretchMaxLengths_0;
        public float m_stretchMaxLengths_1;
        public float m_stretchMaxLengths_2;
        public float m_stretchMaxLengths_3;
        public float m_stretchMaxLengths_4;
        public float m_stretchMaxLengths_5;
        public float m_stretchMaxLengths_6;
        public float m_stretchMaxLengths_7;
        public float m_stretchMaxLengths_8;
        public float m_stretchMaxLengths_9;
        public float m_stretchMaxLengths_10;
        public float m_stretchMaxLengths_11;
        public float m_stretchMaxLengths_12;
        public float m_stretchMaxLengths_13;
        public float m_stretchMaxLengths_14;
        public float m_stretchMaxLengths_15;
        public float m_stretchStiffnesses_0;
        public float m_stretchStiffnesses_1;
        public float m_stretchStiffnesses_2;
        public float m_stretchStiffnesses_3;
        public float m_stretchStiffnesses_4;
        public float m_stretchStiffnesses_5;
        public float m_stretchStiffnesses_6;
        public float m_stretchStiffnesses_7;
        public float m_stretchStiffnesses_8;
        public float m_stretchStiffnesses_9;
        public float m_stretchStiffnesses_10;
        public float m_stretchStiffnesses_11;
        public float m_stretchStiffnesses_12;
        public float m_stretchStiffnesses_13;
        public float m_stretchStiffnesses_14;
        public float m_stretchStiffnesses_15;
        public float m_bendStiffnesses_0;
        public float m_bendStiffnesses_1;
        public float m_bendStiffnesses_2;
        public float m_bendStiffnesses_3;
        public float m_bendStiffnesses_4;
        public float m_bendStiffnesses_5;
        public float m_bendStiffnesses_6;
        public float m_bendStiffnesses_7;
        public float m_bendStiffnesses_8;
        public float m_bendStiffnesses_9;
        public float m_bendStiffnesses_10;
        public float m_bendStiffnesses_11;
        public float m_bendStiffnesses_12;
        public float m_bendStiffnesses_13;
        public float m_bendStiffnesses_14;
        public float m_bendStiffnesses_15;
        public float m_invMassesA_0;
        public float m_invMassesA_1;
        public float m_invMassesA_2;
        public float m_invMassesA_3;
        public float m_invMassesA_4;
        public float m_invMassesA_5;
        public float m_invMassesA_6;
        public float m_invMassesA_7;
        public float m_invMassesA_8;
        public float m_invMassesA_9;
        public float m_invMassesA_10;
        public float m_invMassesA_11;
        public float m_invMassesA_12;
        public float m_invMassesA_13;
        public float m_invMassesA_14;
        public float m_invMassesA_15;
        public float m_invMassesB_0;
        public float m_invMassesB_1;
        public float m_invMassesB_2;
        public float m_invMassesB_3;
        public float m_invMassesB_4;
        public float m_invMassesB_5;
        public float m_invMassesB_6;
        public float m_invMassesB_7;
        public float m_invMassesB_8;
        public float m_invMassesB_9;
        public float m_invMassesB_10;
        public float m_invMassesB_11;
        public float m_invMassesB_12;
        public float m_invMassesB_13;
        public float m_invMassesB_14;
        public float m_invMassesB_15;
        public ushort m_particlesA_0;
        public ushort m_particlesA_1;
        public ushort m_particlesA_2;
        public ushort m_particlesA_3;
        public ushort m_particlesA_4;
        public ushort m_particlesA_5;
        public ushort m_particlesA_6;
        public ushort m_particlesA_7;
        public ushort m_particlesA_8;
        public ushort m_particlesA_9;
        public ushort m_particlesA_10;
        public ushort m_particlesA_11;
        public ushort m_particlesA_12;
        public ushort m_particlesA_13;
        public ushort m_particlesA_14;
        public ushort m_particlesA_15;
        public ushort m_particlesB_0;
        public ushort m_particlesB_1;
        public ushort m_particlesB_2;
        public ushort m_particlesB_3;
        public ushort m_particlesB_4;
        public ushort m_particlesB_5;
        public ushort m_particlesB_6;
        public ushort m_particlesB_7;
        public ushort m_particlesB_8;
        public ushort m_particlesB_9;
        public ushort m_particlesB_10;
        public ushort m_particlesB_11;
        public ushort m_particlesB_12;
        public ushort m_particlesB_13;
        public ushort m_particlesB_14;
        public ushort m_particlesB_15;
        
        public virtual void Read(PackFileDeserializer des, BinaryReaderEx br)
        {
            m_bendMinLengths_0 = br.ReadSingle();
            m_bendMinLengths_1 = br.ReadSingle();
            m_bendMinLengths_2 = br.ReadSingle();
            m_bendMinLengths_3 = br.ReadSingle();
            m_bendMinLengths_4 = br.ReadSingle();
            m_bendMinLengths_5 = br.ReadSingle();
            m_bendMinLengths_6 = br.ReadSingle();
            m_bendMinLengths_7 = br.ReadSingle();
            m_bendMinLengths_8 = br.ReadSingle();
            m_bendMinLengths_9 = br.ReadSingle();
            m_bendMinLengths_10 = br.ReadSingle();
            m_bendMinLengths_11 = br.ReadSingle();
            m_bendMinLengths_12 = br.ReadSingle();
            m_bendMinLengths_13 = br.ReadSingle();
            m_bendMinLengths_14 = br.ReadSingle();
            m_bendMinLengths_15 = br.ReadSingle();
            m_stretchMaxLengths_0 = br.ReadSingle();
            m_stretchMaxLengths_1 = br.ReadSingle();
            m_stretchMaxLengths_2 = br.ReadSingle();
            m_stretchMaxLengths_3 = br.ReadSingle();
            m_stretchMaxLengths_4 = br.ReadSingle();
            m_stretchMaxLengths_5 = br.ReadSingle();
            m_stretchMaxLengths_6 = br.ReadSingle();
            m_stretchMaxLengths_7 = br.ReadSingle();
            m_stretchMaxLengths_8 = br.ReadSingle();
            m_stretchMaxLengths_9 = br.ReadSingle();
            m_stretchMaxLengths_10 = br.ReadSingle();
            m_stretchMaxLengths_11 = br.ReadSingle();
            m_stretchMaxLengths_12 = br.ReadSingle();
            m_stretchMaxLengths_13 = br.ReadSingle();
            m_stretchMaxLengths_14 = br.ReadSingle();
            m_stretchMaxLengths_15 = br.ReadSingle();
            m_stretchStiffnesses_0 = br.ReadSingle();
            m_stretchStiffnesses_1 = br.ReadSingle();
            m_stretchStiffnesses_2 = br.ReadSingle();
            m_stretchStiffnesses_3 = br.ReadSingle();
            m_stretchStiffnesses_4 = br.ReadSingle();
            m_stretchStiffnesses_5 = br.ReadSingle();
            m_stretchStiffnesses_6 = br.ReadSingle();
            m_stretchStiffnesses_7 = br.ReadSingle();
            m_stretchStiffnesses_8 = br.ReadSingle();
            m_stretchStiffnesses_9 = br.ReadSingle();
            m_stretchStiffnesses_10 = br.ReadSingle();
            m_stretchStiffnesses_11 = br.ReadSingle();
            m_stretchStiffnesses_12 = br.ReadSingle();
            m_stretchStiffnesses_13 = br.ReadSingle();
            m_stretchStiffnesses_14 = br.ReadSingle();
            m_stretchStiffnesses_15 = br.ReadSingle();
            m_bendStiffnesses_0 = br.ReadSingle();
            m_bendStiffnesses_1 = br.ReadSingle();
            m_bendStiffnesses_2 = br.ReadSingle();
            m_bendStiffnesses_3 = br.ReadSingle();
            m_bendStiffnesses_4 = br.ReadSingle();
            m_bendStiffnesses_5 = br.ReadSingle();
            m_bendStiffnesses_6 = br.ReadSingle();
            m_bendStiffnesses_7 = br.ReadSingle();
            m_bendStiffnesses_8 = br.ReadSingle();
            m_bendStiffnesses_9 = br.ReadSingle();
            m_bendStiffnesses_10 = br.ReadSingle();
            m_bendStiffnesses_11 = br.ReadSingle();
            m_bendStiffnesses_12 = br.ReadSingle();
            m_bendStiffnesses_13 = br.ReadSingle();
            m_bendStiffnesses_14 = br.ReadSingle();
            m_bendStiffnesses_15 = br.ReadSingle();
            m_invMassesA_0 = br.ReadSingle();
            m_invMassesA_1 = br.ReadSingle();
            m_invMassesA_2 = br.ReadSingle();
            m_invMassesA_3 = br.ReadSingle();
            m_invMassesA_4 = br.ReadSingle();
            m_invMassesA_5 = br.ReadSingle();
            m_invMassesA_6 = br.ReadSingle();
            m_invMassesA_7 = br.ReadSingle();
            m_invMassesA_8 = br.ReadSingle();
            m_invMassesA_9 = br.ReadSingle();
            m_invMassesA_10 = br.ReadSingle();
            m_invMassesA_11 = br.ReadSingle();
            m_invMassesA_12 = br.ReadSingle();
            m_invMassesA_13 = br.ReadSingle();
            m_invMassesA_14 = br.ReadSingle();
            m_invMassesA_15 = br.ReadSingle();
            m_invMassesB_0 = br.ReadSingle();
            m_invMassesB_1 = br.ReadSingle();
            m_invMassesB_2 = br.ReadSingle();
            m_invMassesB_3 = br.ReadSingle();
            m_invMassesB_4 = br.ReadSingle();
            m_invMassesB_5 = br.ReadSingle();
            m_invMassesB_6 = br.ReadSingle();
            m_invMassesB_7 = br.ReadSingle();
            m_invMassesB_8 = br.ReadSingle();
            m_invMassesB_9 = br.ReadSingle();
            m_invMassesB_10 = br.ReadSingle();
            m_invMassesB_11 = br.ReadSingle();
            m_invMassesB_12 = br.ReadSingle();
            m_invMassesB_13 = br.ReadSingle();
            m_invMassesB_14 = br.ReadSingle();
            m_invMassesB_15 = br.ReadSingle();
            m_particlesA_0 = br.ReadUInt16();
            m_particlesA_1 = br.ReadUInt16();
            m_particlesA_2 = br.ReadUInt16();
            m_particlesA_3 = br.ReadUInt16();
            m_particlesA_4 = br.ReadUInt16();
            m_particlesA_5 = br.ReadUInt16();
            m_particlesA_6 = br.ReadUInt16();
            m_particlesA_7 = br.ReadUInt16();
            m_particlesA_8 = br.ReadUInt16();
            m_particlesA_9 = br.ReadUInt16();
            m_particlesA_10 = br.ReadUInt16();
            m_particlesA_11 = br.ReadUInt16();
            m_particlesA_12 = br.ReadUInt16();
            m_particlesA_13 = br.ReadUInt16();
            m_particlesA_14 = br.ReadUInt16();
            m_particlesA_15 = br.ReadUInt16();
            m_particlesB_0 = br.ReadUInt16();
            m_particlesB_1 = br.ReadUInt16();
            m_particlesB_2 = br.ReadUInt16();
            m_particlesB_3 = br.ReadUInt16();
            m_particlesB_4 = br.ReadUInt16();
            m_particlesB_5 = br.ReadUInt16();
            m_particlesB_6 = br.ReadUInt16();
            m_particlesB_7 = br.ReadUInt16();
            m_particlesB_8 = br.ReadUInt16();
            m_particlesB_9 = br.ReadUInt16();
            m_particlesB_10 = br.ReadUInt16();
            m_particlesB_11 = br.ReadUInt16();
            m_particlesB_12 = br.ReadUInt16();
            m_particlesB_13 = br.ReadUInt16();
            m_particlesB_14 = br.ReadUInt16();
            m_particlesB_15 = br.ReadUInt16();
        }
        
        public virtual void Write(PackFileSerializer s, BinaryWriterEx bw)
        {
            bw.WriteSingle(m_bendMinLengths_0);
            bw.WriteSingle(m_bendMinLengths_1);
            bw.WriteSingle(m_bendMinLengths_2);
            bw.WriteSingle(m_bendMinLengths_3);
            bw.WriteSingle(m_bendMinLengths_4);
            bw.WriteSingle(m_bendMinLengths_5);
            bw.WriteSingle(m_bendMinLengths_6);
            bw.WriteSingle(m_bendMinLengths_7);
            bw.WriteSingle(m_bendMinLengths_8);
            bw.WriteSingle(m_bendMinLengths_9);
            bw.WriteSingle(m_bendMinLengths_10);
            bw.WriteSingle(m_bendMinLengths_11);
            bw.WriteSingle(m_bendMinLengths_12);
            bw.WriteSingle(m_bendMinLengths_13);
            bw.WriteSingle(m_bendMinLengths_14);
            bw.WriteSingle(m_bendMinLengths_15);
            bw.WriteSingle(m_stretchMaxLengths_0);
            bw.WriteSingle(m_stretchMaxLengths_1);
            bw.WriteSingle(m_stretchMaxLengths_2);
            bw.WriteSingle(m_stretchMaxLengths_3);
            bw.WriteSingle(m_stretchMaxLengths_4);
            bw.WriteSingle(m_stretchMaxLengths_5);
            bw.WriteSingle(m_stretchMaxLengths_6);
            bw.WriteSingle(m_stretchMaxLengths_7);
            bw.WriteSingle(m_stretchMaxLengths_8);
            bw.WriteSingle(m_stretchMaxLengths_9);
            bw.WriteSingle(m_stretchMaxLengths_10);
            bw.WriteSingle(m_stretchMaxLengths_11);
            bw.WriteSingle(m_stretchMaxLengths_12);
            bw.WriteSingle(m_stretchMaxLengths_13);
            bw.WriteSingle(m_stretchMaxLengths_14);
            bw.WriteSingle(m_stretchMaxLengths_15);
            bw.WriteSingle(m_stretchStiffnesses_0);
            bw.WriteSingle(m_stretchStiffnesses_1);
            bw.WriteSingle(m_stretchStiffnesses_2);
            bw.WriteSingle(m_stretchStiffnesses_3);
            bw.WriteSingle(m_stretchStiffnesses_4);
            bw.WriteSingle(m_stretchStiffnesses_5);
            bw.WriteSingle(m_stretchStiffnesses_6);
            bw.WriteSingle(m_stretchStiffnesses_7);
            bw.WriteSingle(m_stretchStiffnesses_8);
            bw.WriteSingle(m_stretchStiffnesses_9);
            bw.WriteSingle(m_stretchStiffnesses_10);
            bw.WriteSingle(m_stretchStiffnesses_11);
            bw.WriteSingle(m_stretchStiffnesses_12);
            bw.WriteSingle(m_stretchStiffnesses_13);
            bw.WriteSingle(m_stretchStiffnesses_14);
            bw.WriteSingle(m_stretchStiffnesses_15);
            bw.WriteSingle(m_bendStiffnesses_0);
            bw.WriteSingle(m_bendStiffnesses_1);
            bw.WriteSingle(m_bendStiffnesses_2);
            bw.WriteSingle(m_bendStiffnesses_3);
            bw.WriteSingle(m_bendStiffnesses_4);
            bw.WriteSingle(m_bendStiffnesses_5);
            bw.WriteSingle(m_bendStiffnesses_6);
            bw.WriteSingle(m_bendStiffnesses_7);
            bw.WriteSingle(m_bendStiffnesses_8);
            bw.WriteSingle(m_bendStiffnesses_9);
            bw.WriteSingle(m_bendStiffnesses_10);
            bw.WriteSingle(m_bendStiffnesses_11);
            bw.WriteSingle(m_bendStiffnesses_12);
            bw.WriteSingle(m_bendStiffnesses_13);
            bw.WriteSingle(m_bendStiffnesses_14);
            bw.WriteSingle(m_bendStiffnesses_15);
            bw.WriteSingle(m_invMassesA_0);
            bw.WriteSingle(m_invMassesA_1);
            bw.WriteSingle(m_invMassesA_2);
            bw.WriteSingle(m_invMassesA_3);
            bw.WriteSingle(m_invMassesA_4);
            bw.WriteSingle(m_invMassesA_5);
            bw.WriteSingle(m_invMassesA_6);
            bw.WriteSingle(m_invMassesA_7);
            bw.WriteSingle(m_invMassesA_8);
            bw.WriteSingle(m_invMassesA_9);
            bw.WriteSingle(m_invMassesA_10);
            bw.WriteSingle(m_invMassesA_11);
            bw.WriteSingle(m_invMassesA_12);
            bw.WriteSingle(m_invMassesA_13);
            bw.WriteSingle(m_invMassesA_14);
            bw.WriteSingle(m_invMassesA_15);
            bw.WriteSingle(m_invMassesB_0);
            bw.WriteSingle(m_invMassesB_1);
            bw.WriteSingle(m_invMassesB_2);
            bw.WriteSingle(m_invMassesB_3);
            bw.WriteSingle(m_invMassesB_4);
            bw.WriteSingle(m_invMassesB_5);
            bw.WriteSingle(m_invMassesB_6);
            bw.WriteSingle(m_invMassesB_7);
            bw.WriteSingle(m_invMassesB_8);
            bw.WriteSingle(m_invMassesB_9);
            bw.WriteSingle(m_invMassesB_10);
            bw.WriteSingle(m_invMassesB_11);
            bw.WriteSingle(m_invMassesB_12);
            bw.WriteSingle(m_invMassesB_13);
            bw.WriteSingle(m_invMassesB_14);
            bw.WriteSingle(m_invMassesB_15);
            bw.WriteUInt16(m_particlesA_0);
            bw.WriteUInt16(m_particlesA_1);
            bw.WriteUInt16(m_particlesA_2);
            bw.WriteUInt16(m_particlesA_3);
            bw.WriteUInt16(m_particlesA_4);
            bw.WriteUInt16(m_particlesA_5);
            bw.WriteUInt16(m_particlesA_6);
            bw.WriteUInt16(m_particlesA_7);
            bw.WriteUInt16(m_particlesA_8);
            bw.WriteUInt16(m_particlesA_9);
            bw.WriteUInt16(m_particlesA_10);
            bw.WriteUInt16(m_particlesA_11);
            bw.WriteUInt16(m_particlesA_12);
            bw.WriteUInt16(m_particlesA_13);
            bw.WriteUInt16(m_particlesA_14);
            bw.WriteUInt16(m_particlesA_15);
            bw.WriteUInt16(m_particlesB_0);
            bw.WriteUInt16(m_particlesB_1);
            bw.WriteUInt16(m_particlesB_2);
            bw.WriteUInt16(m_particlesB_3);
            bw.WriteUInt16(m_particlesB_4);
            bw.WriteUInt16(m_particlesB_5);
            bw.WriteUInt16(m_particlesB_6);
            bw.WriteUInt16(m_particlesB_7);
            bw.WriteUInt16(m_particlesB_8);
            bw.WriteUInt16(m_particlesB_9);
            bw.WriteUInt16(m_particlesB_10);
            bw.WriteUInt16(m_particlesB_11);
            bw.WriteUInt16(m_particlesB_12);
            bw.WriteUInt16(m_particlesB_13);
            bw.WriteUInt16(m_particlesB_14);
            bw.WriteUInt16(m_particlesB_15);
        }
    }
}
